1. 细说虚功原理
需要简单的微积分和基础的力学知识。
向量用黑体表示。为了方便,我们会用牛顿上面加点的方式表示对时间的导数。
0. 基本概念
我们考虑一个质点系(系统)。系统内所有质点位置的集合称为位形。
然后系统要受到一些约束来限制位形的变化,比如物块放到平面上不能掉下去,平面限制了小物块位置的变化。
一般来说,约束可以写成这样的形式:
上面的式子比较抽象,这里作简单说明。
-
我们的约束包含三部分:对位移的约束,对速度的约束,时间。按照传统牛顿运动定律的观点,实际上给定位移和速度,加上动力学方程就能唯一确定之后的状态,因此位移和速度就唯一确定了系统的状态,而约束就是来限制系统的状态的。
-
上面的式子写出的约束称为双面约束,因为右边是等号。实际上真实物理世界中很多约束是单面的,比如说单摆中绳子对小球的约束,只限制了小球到中心的距离不超过绳长,而非等于绳长。但是如果小球到中心的距离小于绳长,此时约束相当于被解除了,我们就不需要管它了。因此我们主要考虑双面约束的情况。
-
实际中的约束并不都会像上面式子写的那样复杂。比如很多约束是不随时间改变(不显含时间)的,这样的约束称为定常约束,反之称为非定常约束。再如刚体上两质点间的约束仅要求它们之间的距离不变,而没有约束速度,这样的约束称为几何约束。约束还可以进行更细致的分类,但对于静力学问题,我们无需考虑复杂,一般只考虑定常的几何约束。
约束带来的力称为约束(反)力,比如物块放在水平面上,弹力是为了满足平面约束而必须有的,它是一种与违背约束相对抗的反作用力;而对应的重力称为主动力,它不是依赖于约束而存在的。
1. 虚位移,理想约束,虚功原理
仅仅有约束我们还不足以确定运动状态。比如将静止物块放在水平面上后,仅依靠约束,它有可能向各个方向运动(也可能静止);然而实际上由动力学规律,它只可能静止。上面所谓 “可能” 的位移指的是符合约束的位移,我们称为虚位移,这是我们想象出来的,并非实际的运动(时间并没有变化)。对于定常约束,真实的位移就是虚位移中的一个(指的是 “看上去” 一模一样)。我们研究问题的步骤就是先确定符合约束的位移,然后再判定哪个虚位移是真实位移。在传统方法中,我们需要启动牛顿第二定律才能得到真实位移;但我们也可以使用另外的方法,通过一系列判定条件(比如下面的虚功原理)来确定真实位移,这就是分析力学的思想。
上面的文字只是一个较为粗略的对思路的描述,有必要做一些更深入的说明。
我们考察的都是无穷小的虚位移,用

(为了更好表示,上面的图画的是标量
我们考察
这被称为
引入虚位移的一大好处是,大多数约束力做的虚功为零。这里“虚功”的意思是力和虚位移的点乘,并不是一种实际的功。约束力做的虚功为零的约束称为理想约束。
下面这些约束都是理想约束:
与光滑表面接触;光滑铰接;质点用张紧且不可伸长轻绳连接……
如果是静力平衡的情况那么上面这些都是显然的。这里说明一下,在非定常条件下质点光滑表面接触(光滑表面不属于系统)也是理想约束。
我们设光滑表面带来的约束为
(光滑表面可以运动),那么虚位移应当满足: 如果使用
的话(也就是实际情况下),应当有 这一项,实际做的功并不为零。然而注意虚位移的定义, ,虚位移是被限制在某一时刻的切向上的。
由理想约束下约束力不做功,我们记质点
这就得到虚功原理:
具有理想约束的质点系达到平衡的充分必要条件是在任何虚位移上,主动力做的虚功的和为零。
(必要性证明不难)
这给了我们只需作出主动力就能做题的方法。试试看!
例 1.1 如图,现有线密度为

自然想到应当考虑沿原来绳子的方向的虚位移,但是首先有一个问题是,绳子的形状会变,然后什么都变了,算不了一点。
这里的技巧是,直接把条件改了,让绳子不是自由垂落,而是用一个和原来绳子形状相同的光滑管套在绳子外面。这样并不会改变各个力的大小,但是能使绳子只沿原方向,相当于减小了自由度。
此时仍然保证理想约束。由重力(保守力)做功的性质及虚功原理得
即得结论。
我们再来看一个流体的问题(帕斯卡定律)。
例 1.2 如图,容器内有不可压缩的流体且处于平衡状态,忽略活塞摩擦及重力,求证

考虑一个
消去
这时,关键在于
从这个例子可以看出,最后我们需要化为互相独立的虚位移的线性组合的形式,这就要求我们需要把不独立的虚位移消掉。
虚功原理能够大量减少约束力的分析。经典的例子是这个题:
例 1.3 如图由四根长

设
得
但是来看这个平衡题:
例 1.4 如图,质量为

按照之前虚位移的理论,我们考虑一个质心的虚位移
这里有一个问题,就是我们本来是希望是要做虚位移的,结果最后解出所设的“虚位移”根本不存在,这里所谓的虚位移是不符合定义的,只是在数学上满足这样的关系。
不过在这个题中我们可以用数学方法处理。
为了解出关系我们先用
同取
这下
我们能够明显感受到这道题与前面两道题的区别,直接用虚功原理遇到了困难。我们把一些问题总结在这里:
-
首先 “虚位移” 本身就是一个比较抽象的概念。我们为消掉约束力引入了虚位移,但是虚位移这个东西又高度依赖约束,结果是找合适的虚位移反而成了困难的部分了。有时我们设了看似有的虚位移,结果最后实际上并不存在。并且我们不知道要怎么判断这种情况,只能推矛盾。
-
注意上面对于虚功原理的讨论是基于虚 “位移” 的,首先要有位移。但有时用位移来表示是相当复杂的,不如直接用一个
。 -
虚位移的不独立。写出虚位移之后需要找出虚位移间关系进行消元。
解决这些问题的方案其实上面已经有了:不拘泥于 “位移”,也可以使用
2. 广义坐标下的虚功原理
广义坐标指的是一组独立的参数
举一个经典的例子,考虑一个单摆(摆角不超过
-
我们可以用单独的角度
来表示位形,单独的 是广义坐标。 -
单独的
也是广义坐标,但是显然不如 好。 -
单独的
不是广义坐标,因为无法区分左右两状态。 -
不是广义坐标,因为两个参数不相互独立。
“无法区分左右两状态” 这句话道出了 例 1.4 中出现
的根本原因。那个题的平衡状态就像是单摆的平衡状态(只是稳定性有差别)。
因为使用广义坐标就已经能唯一确定位形,我们无需再找出坐标间关系(不用管约束方程了)。
类比原有的运动学概念,广义坐标关于时间的导数称为广义速度。在我们目前讨论的问题(完整约束)中,广义速度、广义坐标的变分也是相互独立的。
接下来我们尝试将广义坐标代入到虚功原理的式子中。
设位矢
代入到虚功原理的式子中有
与初始时的虚功原理作比较,我们可以定义广义力
于是有
因为广义坐标的优秀性质(相互独立和唯一确定性),我们有
我们可以看到,这个式子就不再包含原来的“虚位移”,是一个更加确定的形式。
实际上我们并不会对每个广义坐标求广义力,即直接用上面的式子进行运算,而是考虑每个主动力,计算它作的虚功。比如下面这道例题:
例 2. 如图,杆

容易判定符合使用虚功原理的条件。我们取广义坐标
要算做功,只需表示
取变分,有
由虚功原理,
代入化简得
于是有
解得
练习:用类似的方法完成 例1.4
总结一下,我们做题的步骤是这样的:
-
判定约束为双面、定常、几何、理想的约束。如果要求约束力,需要解除约束,用主动力替换(例 1.3)。
-
判断自由度,选取合适的广义坐标。
-
将每个主动力的作用点的位置用广义坐标表示。
-
作变分,求出虚功。
-
按广义坐标合并同类项,令各项为零,解方程组即得。
3. 保守系统下的虚功原理与平衡的稳定性
很多主动力,比如恒力(重力可看作一种恒力),引力,库仑力,弹簧弹力等都属于保守力,有势能相对应。因此对于保守系统,我们可以使用势能来表示稳定条件。下面我们具体推导一下。
设势能函数为
由对易性
由
上面的式子意义明显,就是说物体的平衡位置就是势能取驻值的位置。
实际上对于 例 1.4,我们最后的做法中
然而并不是所有的平衡位置都是我们在日常生活中能够见到的。比如考虑一个半球面,我们将一个小球放到上面,它几乎必然会滑下;或者说,即使恰好将它放在了正上方,给一个任意小的微扰,它都会远离平衡位置滑下。我们称这种平衡为不稳定平衡。反过来,如果是半球碗内的球,那么即使给定一个微扰,它也会回复到原来的位置,这种平衡称为稳定平衡。另外我们还有随遇平衡的概念,指的是经过微扰后,物体停留在微扰后的位置,既不远离平衡位置,也不回复到平衡位置。
值得注意的是,引入势能函数,我们可以比较方便地得到平衡的稳定性。我们可以粗略认为,极值点的种类对应着稳定性的种类。简单来说,稳定平衡一般对应着势能函数的极小值,而不稳定平衡一般对应着势能函数在平衡位置不取严格极小值。随遇平衡则意味着势能函数在对应位置周围非无穷小的部分为定值。(这里的说法都不是很严谨;平衡稳定性的证明过于复杂,这里直观理解即可)
对仅一个广义坐标的情况(一元势函数),我们可以简单地对其进一步求导,判断二阶导数的符号即可。
若仅有重力势能,此时就是受力分析中所谓“重心升降法”的原理。
例 3.1 试判断 例 1.4 中平衡的稳定性。
重力势能只与纵坐标有关,只写纵坐标即可。我们沿用先前的符号,
因此为不稳定平衡。
例 3.2 如图,匀质杆

随遇平衡意味着势能为常数,杆的重心高度不变。考虑竖直放置,此时重心高度为
这就得到柱面方程。柱面在
下面两个例子相对复杂一点。
例 3.3 如图,大圆环光滑,

设
求导
解得
这里对于势能函数的讨论比较复杂,略去,直接给出最后的势能曲线:

例 3.4 如图,光滑圆环半径为

显然考虑换系,此时多出一项惯性离心力
注意惯性离心力的大小只与到圆心的距离有关,我们可以引入离心势能。先算做功(注意力的方向向外)
由
考虑整根杆,由长度关系注意到杆所对圆心角为
以
因此杆总势能
注意到这是关于
当
再考虑
-
当
时,为稳定平衡; -
当
时,为不稳定平衡。
4. 后面是什么?
简单介绍一点动力学问题的处理方案,基本上就是列举结论。
对于动力学问题,我们有时也会将它转化为静力学问题来进行解决。方法就是引入我们常说的“惯性力”。
我们记质点
此时我们将右边一项移到左边:
将
此式称达朗贝尔原理,也叫做动力学普遍方程。
接下来我们将广义坐标代入,设位矢
这可以使用一些技巧化简得到(比较复杂,不细推了)
其中
最终得到拉格朗日方程
当为保守力系时代入
其中
一个方程就把(完整系下的)动力学写明白了,非常厉害。